package net.loyintean.pearlshell.validation;

import net.loyintean.pearlshell.validation.exception.ForceInteruptException;

public interface IValidRule {
	/**
	 * 定义IValidRule的接口
	 * 
	 * @param toValid
	 *            验证的对象
	 * @param config
	 *            验证的规则
	 * @return
	 * @throws ForceInteruptExceptio
	 *             如果这个校验规则需要中断校验流，请抛出此异常。
	 * @throws IllegalArgumentException
	 *             如果入参config不符合rule的约束，请抛出此异常。并在异常信息中说明约束条件。
	 */
	boolean valid(Object toValid, IValidRuleConfig config)
			throws ForceInteruptException;

	String errorMsg(IValidRuleConfig config);

}
